package com.ruoyi.user.mapper;

import java.util.List;
import com.ruoyi.user.domain.RegionUserWishlists;
import org.apache.ibatis.annotations.Param;

/**
 * 区域用户愿望单Mapper接口
 *
 * @author ruoyi
 * @date 2025-10-21
 */
public interface RegionUserWishlistsMapper
{
    /**
     * 查询区域用户愿望单
     *
     * @param wishlistId 区域用户愿望单主键
     * @return 区域用户愿望单
     */
    public RegionUserWishlists selectRegionUserWishlistsByWishlistId(String wishlistId);

    /**
     * 查询区域用户愿望单列表
     *
     * @param regionUserWishlists 区域用户愿望单
     * @return 区域用户愿望单集合
     */
    public List<RegionUserWishlists> selectRegionUserWishlistsList(RegionUserWishlists regionUserWishlists);

    /**
     * 新增区域用户愿望单
     *
     * @param regionUserWishlists 区域用户愿望单
     * @return 结果
     */
    public int insertRegionUserWishlists(RegionUserWishlists regionUserWishlists);

    /**
     * 修改区域用户愿望单
     *
     * @param regionUserWishlists 区域用户愿望单
     * @return 结果
     */
    public int updateRegionUserWishlists(RegionUserWishlists regionUserWishlists);

    /**
     * 删除区域用户愿望单
     *
     * @param wishlistId 区域用户愿望单主键
     * @return 结果
     */
    public int deleteRegionUserWishlistsByWishlistId(String wishlistId);

    /**
     * 批量删除区域用户愿望单
     *
     * @param wishlistIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteRegionUserWishlistsByWishlistIds(String[] wishlistIds);

    /**
     * 根据区域ID查询愿望榜单列表
     *
     * @param regionId 区域ID
     * @return 区域用户愿望单集合
     */
    public List<RegionUserWishlists> selectRegionUserWishlistsByRegionId(String regionId);

    /**
     * 检查用户在指定区域是否已有相同内容的愿望
     *
     * @param regionId 区域ID
     * @param customerId 用户ID
     * @param content 愿望内容
     * @return 愿望单数量
     */
    public int checkDuplicateWishlist(@Param("regionId") String regionId, @Param("customerId") String customerId, @Param("content") String content);

    /**
     * 根据区域ID和用户ID添加愿望
     *
     * @param regionUserWishlists 区域用户愿望单
     * @return 结果
     */
    public int insertWishlistByRegionAndCustomer(@Param("regionId") String regionId, @Param("customerId") String customerId, @Param("wishlistData") RegionUserWishlists regionUserWishlists);
}
